import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useAuthStore } from '@/stores/auth'

// 1. 创建实例
const instance = axios.create({
  baseURL: '/api',
  timeout: 10000
})

// 2. 请求拦截：自动携带 token
instance.interceptors.request.use(
  (config) => {
    const auth = useAuthStore()
    if (auth.token) {
      config.headers.Authorization = `Bearer ${auth.token}`
    }
    return config
  },
  (error) => Promise.reject(error)
)

// 3. 响应拦截：统一拆包 + 统一报错
instance.interceptors.response.use(
  (res) => res.data,               // 直接返回后端 data
  (err) => {
    ElMessage.error(err?.response?.data?.msg || '请求异常')
    return Promise.reject(err)
  }
)

/* 4. 导出（关键）：
   既支持默认导入，也支持命名导入，兼容不同写法 */
export default instance
export const http = instance